/**
 * 微信小程序分享工具类
 */

/**
 * 分享配置接口
 */
export interface ShareConfig {
  title?: string;
  path?: string;
  imageUrl?: string;
}

/**
 * 默认分享配置
 */
const DEFAULT_SHARE_CONFIG: ShareConfig = {
  title: '我倒要看看喝了多少奶茶',
  path: '/pages/home/home',//默认分享页
  imageUrl: '/static/u0.png'
};

/**
 * 设置页面分享配置（右上角三个点分享）
 * @param config 分享配置
 * @returns 分享配置对象
 */
export const setPageShare = (config?: ShareConfig) => {
  const shareConfig = {
    ...DEFAULT_SHARE_CONFIG,
    ...config
  };

  return {
    title: shareConfig.title,
    path: shareConfig.path,
    imageUrl: shareConfig.imageUrl
  };
};

/**
 * 自定义按钮分享
 * @param config 分享配置
 */
export const shareToFriend = (config?: ShareConfig) => {
  const shareConfig = {
    ...DEFAULT_SHARE_CONFIG,
    ...config
  };

  uni.shareWithSystem({
    type: 'text',
    summary: shareConfig.title,
    success: () => {
      uni.showToast({
        title: '分享成功',
        icon: 'success'
      });
    },
    fail: () => {
      // 如果系统分享失败，尝试使用微信分享
      uni.showShareMenu({
        withShareTicket: true,
        success: () => {
          uni.showToast({
            title: '请点击右上角分享',
            icon: 'none'
          });
        },
        fail: () => {
          uni.showToast({
            title: '分享功能暂不可用',
            icon: 'none'
          });
        }
      });
    }
  });
};

/**
 * 获取账单页面分享配置
 */
export const getBillPageShare = () => {
  return setPageShare({
    title: '我倒要看看喝了多少奶茶',
    path: '/pages/bill/bill'
  });
};

/**
 * 获取个人中心页面分享配置
 */
export const getMinePageShare = () => {
  return setPageShare({
    title: '扶贫中心',
    path: '/pages/mine/mine'
  });
};
